/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.coraci.bas.db.entities;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;

/**
 *
 * @author Luca
 */
@Entity
public class Bank implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    //Denominazione Istituto Bancario o Finanziario
    private String denominazione;
    private String sedeLegaleIndirizzo;
    private String sedeLegaleCAP;
    private String sedeLegaleCity;
    
    private String sedeGeneraleIndirizzo;
    private String sedeGeneraleCAP;
    private String sedeGeneraleCity;
    
    private String registroImprese;
    private String CF;
    private String partitaIVA;
    
    private String numeroAlbo;
    private String ABI;
    private String capitaleSociale;
    private String gruppoBancario;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date startActivity;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date endActivity;
    @OneToMany(mappedBy = "bank")
    private List<Filiale> filiales;

    public List<Filiale> getFiliales() {
        return filiales;
    }

    public void setFiliales(List<Filiale> filiales) {
        this.filiales = filiales;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Bank() {
    }

    public String getDenominazione() {
        return denominazione;
    }

    public void setDenominazione(String denominazione) {
        this.denominazione = denominazione;
    }

    public String getSedeLegaleIndirizzo() {
        return sedeLegaleIndirizzo;
    }

    public void setSedeLegaleIndirizzo(String sedeLegaleIndirizzo) {
        this.sedeLegaleIndirizzo = sedeLegaleIndirizzo;
    }

    public String getSedeLegaleCAP() {
        return sedeLegaleCAP;
    }

    public void setSedeLegaleCAP(String sedeLegaleCAP) {
        this.sedeLegaleCAP = sedeLegaleCAP;
    }

    public String getSedeLegaleCity() {
        return sedeLegaleCity;
    }

    public void setSedeLegaleCity(String sedeLegaleCity) {
        this.sedeLegaleCity = sedeLegaleCity;
    }

    public String getSedeGeneraleIndirizzo() {
        return sedeGeneraleIndirizzo;
    }

    public void setSedeGeneraleIndirizzo(String sedeGeneraleIndirizzo) {
        this.sedeGeneraleIndirizzo = sedeGeneraleIndirizzo;
    }

    public String getSedeGeneraleCAP() {
        return sedeGeneraleCAP;
    }

    public void setSedeGeneraleCAP(String sedeGeneraleCAP) {
        this.sedeGeneraleCAP = sedeGeneraleCAP;
    }

    public String getSedeGeneraleCity() {
        return sedeGeneraleCity;
    }

    public void setSedeGeneraleCity(String sedeGeneraleCity) {
        this.sedeGeneraleCity = sedeGeneraleCity;
    }

    public String getRegistroImprese() {
        return registroImprese;
    }

    public void setRegistroImprese(String registroImprese) {
        this.registroImprese = registroImprese;
    }

    public String getCF() {
        return CF;
    }

    public void setCF(String CF) {
        this.CF = CF;
    }

    public String getPartitaIVA() {
        return partitaIVA;
    }

    public void setPartitaIVA(String partitaIVA) {
        this.partitaIVA = partitaIVA;
    }

    public String getNumeroAlbo() {
        return numeroAlbo;
    }

    public void setNumeroAlbo(String numeroAlbo) {
        this.numeroAlbo = numeroAlbo;
    }

    public String getABI() {
        return ABI;
    }

    public void setABI(String ABI) {
        this.ABI = ABI;
    }

    public String getCapitaleSociale() {
        return capitaleSociale;
    }

    public void setCapitaleSociale(String capitaleSociale) {
        this.capitaleSociale = capitaleSociale;
    }

    public String getGruppoBancario() {
        return gruppoBancario;
    }

    public void setGruppoBancario(String gruppoBancario) {
        this.gruppoBancario = gruppoBancario;
    }

    public Date getStartActivity() {
        return startActivity;
    }

    public void setStartActivity(Date startActivity) {
        this.startActivity = startActivity;
    }

    public Date getEndActivity() {
        return endActivity;
    }

    public void setEndActivity(Date endActivity) {
        this.endActivity = endActivity;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Bank)) {
            return false;
        }
        Bank other = (Bank) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.coraci.bas.db.entities.Bank[ id=" + id + " ]";
    }
    
}
